package com.sdemo.modules.sys.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.sdemo.common.globals.Globals;
import com.sdemo.modules.comm.controller.BaseController;
import com.sdemo.modules.sys.model.Menu;
import com.sdemo.modules.sys.model.MenuTree;
import com.sdemo.modules.sys.model.TreeMenu;
import com.sdemo.modules.sys.model.User;
import com.sdemo.modules.sys.service.impl.MenuServiceImpl;
import com.sdemo.utils.Ret;

@Controller
@RequestMapping("/sys")
public class MenuController extends BaseController {
	@Autowired
	private MenuServiceImpl menuServiceImpl; 
	
	/**
	 * 
	 * 查询菜单列表
	 * @param userId 
	 * @return
	 */
	@RequestMapping(value={"/queryMenu"})
	@ResponseBody
	public Ret queryMenu(Long userId){
		List<Menu> list = menuServiceImpl.queryMenu();
		if(list == null){
			Ret.error("数据为空");
		}
		return Ret.ok().put("data", list);
	}
	/**
	 * 
	 * 查询ztree菜单列表(rolelist选择菜单)
	 * @param userId 
	 * @return
	 */
	@RequestMapping(value={"/queryMenuztree"})
	@ResponseBody
	public Ret queryMenuZtree(){
		List<MenuTree> list = menuServiceImpl.queryMenuZtree();
		if(list == null){
			Ret.error("数据为空");
		}
		return Ret.ok().put("data", list);
	}
	/**
	 * 
	 * 新增信息
	 * @param menu 
	 * @return
	 */
	@RequestMapping(value={"/insertMenu"})
	@ResponseBody
	public Ret insertMenu(Menu menu){
		if(menu.getRemark().equals("0")){
			menu.setRemark("一级菜单");
		}else if(menu.getRemark().equals("1")){
			menu.setRemark("二级菜单");
		}else{
			menu.setRemark("三级菜单");
		}
		menu.setCreateuid(1L);

		int index = menuServiceImpl.insertMenu(menu);
		if(index < 0){
			return Ret.error("数据为空");
		}
		return Ret.ok().put("data", menu);
	}
	/**
	 * 
	 * 动态菜单查询
	 * @param menu 
	 * @return
	 */
	@RequestMapping(value={"/selectMenu"})
	@ResponseBody
	public Ret selectMenu(User user){
		user.setUserId(getUserId());
		List<TreeMenu> menu = menuServiceImpl.selectMenu(user);
		if(menu==null){
			return Ret.error("数据为空");
		}
		return Ret.ok().put("data", menu);
	}
	
	/**
	 * 
	 * 删除信息
	 * @param menu 
	 * @return
	 */
	@RequestMapping(value={"/deleteMenuByMid"})
	@ResponseBody
	public Ret deleteMenu(Menu menu){
		int index = menuServiceImpl.deleteMenuByMid(menu.getMid());
		if(index < 0){
			return Ret.error("数据为空");
		}
		return Ret.ok().put("data", menu);
	}
	
	
	
	/**
	 * 
	 * 修改前显示信息
	 * @param menu 
	 * @return
	 */
	@RequestMapping(value={"/queryMenuByMid"})
	@ResponseBody
	public Ret queryMenuByMid(Long mid){
		
		Menu menu = menuServiceImpl.queryMenuByMid(mid);
		//myJedis.hdel(Globals.redis_userauth_key);
		if(menu == null){
			return Ret.error("数据为空");
		}
		return Ret.ok().put("data", menu);
	}
	
	
	/**
	 * 
	 * 修改信息
	 * @param menu 
	 * @return
	 */
	@RequestMapping(value={"/updateMenu"})
	@ResponseBody
	public Ret updateMenu(Menu menu){
		if(menu.getRemark().equals("0")){
			menu.setRemark("一级菜单");
		}else if(menu.getRemark().equals("1")){
			menu.setRemark("二级菜单");
		}else{
			menu.setRemark("三级菜单");
		}
		System.out.println("127====menu.getUrl()"+menu.getUrl());
		int index = menuServiceImpl.updateMenu(menu);
		myJedis.hdel(Globals.redis_userauth_key);
		if(index < 0){
			return Ret.error("数据为空");
		}
		return Ret.ok().put("data", index);
	}
	
	
}
